///**
// * 
// */
//package MUSI.Deusto.curso20112012.clienteTwitter;
//
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.List;
//
//import twitter4j.ResponseList;
//import twitter4j.Twitter;
//import twitter4j.TwitterException;
//import twitter4j.TwitterFactory;
//import twitter4j.auth.AccessToken;
//import twitter4j.auth.RequestToken;
//import MUSI.Deusto.curso20112012.MUSIDeustoActivity;
//import MUSI.Deusto.curso20112012.herramientas.Constantes;
//import android.app.Service;
//import android.content.Intent;
//import android.content.SharedPreferences;
//import android.content.SharedPreferences.Editor;
//import android.os.Bundle;
//import android.os.IBinder;
//import android.widget.Toast;
//
///**
// * @author PatxiGG
// * 
// */
//public class ServicioClienteTwitter extends Service {
//
//	private Twitter twitter = null;
//	private MUSIDeustoActivity actividad = null;
//	private static final String INITIALIZED = "initialized";
//	private static final String TOKEN_SECRET = "TokenSecret";
//	private static final String ACCESS_TOKEN = "AccessToken";
//	private SharedPreferences sharedPreferences = null;
//	private RequestToken requestToken = null;
//
//	public ServicioClienteTwitter(MUSIDeustoActivity actividad) {
//		this.actividad = actividad;
//	}
//
//	@Override
//	public IBinder onBind(Intent intent) {
//		// TODO Auto-generated method stub
//		return null;
//	}
//
//	@Override
//	public void onCreate() {
//		// verificamos a ver si existen los datos que necesitamos de esta
//		// aplicacion en el dispositivo
//		// Obtiene el objeto de preferencias de la aplicacion llamado
//		// preferencias. Podeis indicar el nombre que querais.
//		this.sharedPreferences = this.actividad.getApplicationContext()
//				.getSharedPreferences("preferencias", 0);
//
//		// creamos la instancia a el cliente twitter
//		this.twitter = new TwitterFactory().getInstance();
//		// autenticamos al cliente para el usuario
//		this.twitter.setOAuthConsumer(Constantes.CONSUMER_KEY,
//				Constantes.CONSUMER_SECRET);
//	}
//
//	private boolean clienteTieneDatosQueNecesita() {
//		boolean resultado = false;
//		if ((this.sharedPreferences.getString(ACCESS_TOKEN, null)) != null) {
//			if ((this.sharedPreferences.getString(TOKEN_SECRET, null)) != null) {
//				resultado = true;
//			}
//		}
//		return resultado;
//	}
//
//	private void iniciarElCliente() throws TwitterException, IOException {
//		if (this.iniciado() == true) {
//			// si ya esta iniciado, obtenemos las claves que necesitamos
//			AccessToken oathAccessToken = new AccessToken(
//					this.sharedPreferences.getString(ACCESS_TOKEN, null),
//					this.sharedPreferences.getString(TOKEN_SECRET, null));
//			this.twitter.setOAuthAccessToken(oathAccessToken);
//
//		} else {
//			// el cliente no ha sido iniciado
//			// tenemos que iniciarlo
//			this.requestToken = this.twitter.getOAuthRequestToken();
//			// le mostramos al usuario la opcion para que autorice a la
//			// aplicacion
//			this.actividad.permitirTwitter(requestToken.getAuthorizationURL());
//		}
//
//	}
//
//	public boolean almacenarCredenciales(String pin) {
//		boolean resultado = false;
//
//		try {
//			// con el pin y la url, obtenemos el token de acceso
//			AccessToken accessToken = twitter.getOAuthAccessToken(requestToken,
//					pin);
//			// guardamos los tokens de acceso
//			this.guardarDatos(ACCESS_TOKEN, accessToken.getToken());
//			// y el token secreto de la aplicacion
//			this.guardarDatos(TOKEN_SECRET, accessToken.getTokenSecret());
//			resultado = true;
//
//		} catch (TwitterException te) {
//			System.out.println("Failed to get access token, caused by: "
//					+ te.getMessage());
//			System.out.println("Retry input PIN");
//		}
//		return resultado;
//
//	}
//
//	public boolean iniciado() {
//		// Obtiene un booleano almacenado en las preferencias de nombre
//		// initialized. El segundo parametro indica el valor a devolver si no lo
//		// encuentra, en este caso, falso.
//		return this.sharedPreferences.getBoolean(INITIALIZED, false);
//	}
//
//	public void guardarDatos(String clave, String valor) {
//		// Obtenemos el editor de las preferencias.
//		Editor editor = this.sharedPreferences.edit();
//		// metemos las variables que nos han pasado
//		editor.putString(clave, valor);
//		// guardamos la clave de iniciar a true
//		editor.putBoolean(INITIALIZED, true);
//		// guardamos los valores
//		editor.commit();
//	}
//
//	public void guardarDatos(String clave, boolean valor) {
//		// Obtenemos el editor de las preferencias.
//		Editor editor = this.sharedPreferences.edit();
//		// metemos las variables que nos han pasado
//		editor.putBoolean(clave, valor);
//		// guardamos la clave de iniciar a true
//		editor.putBoolean(INITIALIZED, true);
//		// guardamos los valores
//		editor.commit();
//	}
//
//	public List<String> obtenerTimeLine() {
//		List<String> resultado = new ArrayList<String>();
//		try {
//			// obtenemos el timeline
//			ResponseList<twitter4j.Status> list = this.twitter
//					.getHomeTimeline();
//			// otra posibilidad
//			// this.twitter.getPublicTimeline();
//
//			for (twitter4j.Status each : list) {
//				// comprobamos que el twitt sea de MUSIDeusto
//				if ((each.getUser().getScreenName().toLowerCase())
//						.equals("musideusto")) {
//					// el twitt es de musideusto, por lo que lo guardamos
//					resultado.add(each.getText());
//				}
//			}
//
//		} catch (TwitterException e) {
//			// TODO: handle exception
//			e.printStackTrace();
//		}
//		return resultado;
//	}
//
//	@Override
//	public void onStart(Intent intent, int starid) {
//
//		// recogemos los datos que nos pasa la actividad anterior
//		Bundle extras = intent.getExtras();
//
//		// comprobamos que los extras no esten vacios y verificamos que contenga
//		// los datos que necesitamos
//		if ((extras != null) && (extras.get("actividad") != null)) {
//			// recogemos los datos que necesitamos
//			this.actividad = (MUSIDeustoActivity) extras.get("actividad");
//
//			// generamos la lista para el timeline
//			List<String> listaResultado = null;
//
//			try {
//				// iniciamos el cliente
//				this.iniciarElCliente();
//				// comprobamos que el cliente tenga todos los datos que necesite
//				if (this.clienteTieneDatosQueNecesita()) {
//					// actualizar el timeline
//					listaResultado = this.obtenerTimeLine();
//				}
//
//			} catch (Exception e) {
//				// TODO: handle exception
//				e.printStackTrace();
//			}
//
//			// avisamos al usuario de la creacion del servicio
//			Toast.makeText(actividad, "Servicio twitter arrancado",
//					Toast.LENGTH_LONG).show();
//		} else {
//			// como no tenemos lo que necesitamos, destruimos el servicio
//			this.onDestroy();
//		}
//
//	}
//
//	@Override
//	public void onDestroy() {
//		super.onDestroy();
//		Toast.makeText(actividad, "Servicio twitter terminado",
//				Toast.LENGTH_LONG).show();
//		this.actividad = null;
//		this.twitter = null;
//	}
//}
